<h1>Introduction</h1>
<p>This codebase is a set of PHP classes to support building web applications. It's main philosophy is loose coupling and flexibility.</p>
<h2>Highlights</h2>
<ul>
<li>PHP5</li>
<li>Standard Front/Action Controller supports MVC but allows for MP or Transaction Scripts.</li>
<li>PEAR style naming conventions to ease class loading (e.g., class A_Controller_Front in file A/Controller/Front.php).</li>
<li>Code attempts to be flexible to allow a range of file layout and name conventions to be used.</li>
</ul>
<h2>Design Summary</h2>
<ul>
<li>Front Controller use is assumed but not required. Page controller can easily be implemented. </li>
<li>Support for clean URLs is included via a class that maps PATH_INFO values onto the request based upon application supplied mappings.</li>
<li>Base Input Controller and Application Controller classes are available to build a variety of controller types. A Form Controller is implemented on top of these for forms based input.</li>
<li>Controllers all pass a single Service Locator object which can contain any object that the application wants to make available to dispatched actions. </li>
<li>A Request class is provided to encapsulate the current HTTP request data.</li>
<li>A Response class is provided to assist in HTML page building and handle redirects.</li>
<li>A Filter Chain and set of common Filter classes are available for filtering request data.</li>
<li>A rule based Validator and set of common Rule classes are available for validating request data.</li>
</ul>
